// 用户管理
export const state = () => ({
  // 采用接口返回的数据结构
  userInfo: {
    token: "",
    user: {},
  },
})

// mutations是用于同步修改state的数据
export const mutations = {
  // 保存用户信息到state
  setUserInfo(state, data) {
    state.userInfo = data;
  },
  // 清除用户数据
  cleanUserInfo(state, info) {
    if (process.browser) {
      localStorage.removeItem("userInfo");
    }
    state.userInfo = {};
  }
};
// 异步修改state的数据
export const actions = {
  // 登录
  login({
    commit
  }, data) {
    return this.$axios({
      url: "/accounts/login",
      method: "post",
      data: data
    }).then(res => {
      const data = res.data;
      // 保存到state
      commit("setUserInfo", data);
      return data;
    })
  },
  // 发送验证码,tel是手机号码
  sendCaptcha(store, tel) {
    // 请求手机验证码接口
    return this.$axios({
      url: "/captchas",
      method: "post",
      data: {
        tel
      }
    }).then((res) => {
      // code是验证码
      const {
        code
      } = res.data;
      return code;
    })
  },
  register(store, data) {
    return this.$axios({
      url: "/accounts/register",
      method: "post",
      data
    }).then(res => {
      // 注册完毕之后立即登录
      store.commit("setUserInfo", res.data)
    })
  }
};
